package com.mongo.aggregation.model.entity;

import com.mongo.aggregation.enums.SexEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.FieldNameConstants;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.TypeAlias;
import org.springframework.data.mongodb.core.mapping.Document;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * 涵盖了MongoDB的所有数据类型
 * @author qilongxin
 * @date 2021/7/29 12:06
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@FieldNameConstants
@TypeAlias(value = "person")
@Document(value = "person")
public class PersonEntity {

    @Id
    private Object id;

    /**
     * 字符串类型：用户名
     */
    private String name;

    /**
     * 枚举类型：性别
     */
    private SexEnum sex;

    /**
     * 数字类型：年龄
     */
    private Integer age;

//    /**
//     * 日期类型：注册时间
//     */
//    private LocalDateTime registerDate;

//    /**
//     * 数组类型（无序）：喜欢的事物
//     */
//    private Set<String> favorite;
//
//    /**
//     * 数组类型（有序）：个人履历
//     */
//    private List<String> experience;
//
//    /**
//     * 内嵌文档：数据模板
//     */
//    private List<Template> templates;
//
//    @Data
//    static class Template {
//        // 模板id
//        private String id;
//        // 视图名称
//        private String view;
//        // 图片路径
//        private String image;
//    }

}
